// If condition, line 6-9, is added before the outer while loop to 1a2's part function. size_t part(int * data, int left, int right) { int i = left + 1, j = right; int pivot = data[left]; if(l == r && data[pivot] <= data[r]) { return pivot; } while (i <= j) { while (pivot < data[j]) j--; if (j == left) return left; while (i < right && pivot > data[i]) i++; if (i == j) break; if (i < j) swap(&data[i], &data[j]); } swap(&data[left], &data[j]); return j; }